package com.suixun.dao.credits;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.suixun.entity.ext.credits.company.CompanyGoodsPage;
import com.suixun.entity.ext.credits.company.CountGoodsInfo;
import com.suixun.entity.ext.credits.company.GoodsArchivesPage;
import com.suixun.entity.ext.credits.company.GoodsPage;
import com.suixun.entity.form.credits.BasePageForm;
import com.suixun.entity.form.credits.company.GoodsArchivesPageForm;
import com.suixun.entity.form.credits.company.GoodsPageForm;

/**
 * 商品管理
 * 
 * @author yh
 * @date 2017年12月15日
 */
public interface GoodsArchivesDao {

    /**
     * 分页查询商品列表
     * 
     * @param param
     *            查询条件
     * @return
     */
    List<GoodsArchivesPage> findPage(GoodsArchivesPageForm param);

    /**
     * 分页统计商品
     * 
     * @param param
     *            查询条件
     * @return
     */
    Integer findPageTatal(GoodsArchivesPageForm param);

    /**
     * 商户下的商品列表
     * 
     * @param param
     *            分页参数
     * @param companyid
     *            商户id
     * @return
     */
    List<CompanyGoodsPage> findPageByCompany(@Param("param") BasePageForm param, @Param("companyid") Integer companyid);

    /**
     * 商户下的商品列表统计
     * 
     * @param param
     *            分页参数
     * @param companyid
     *            商户id
     * @return
     */
    Integer findPageByCompanyTatal(@Param("param") BasePageForm param, @Param("companyid") Integer companyid);

    /**
     * 统计商品使用情况
     * 
     * @param archivesid
     *            商品id
     * @return
     */
    CountGoodsInfo countGoodsInfo(Integer archivesid);

    /**
     * 商品使用详情列表查询
     * 
     * @param param
     * @return
     */
    List<GoodsPage> findGoodsPage(GoodsPageForm param);

    /**
     * 商品使用详情列表统计
     * 
     * @param param
     * @return
     */
    Integer findGoodsPageTatal(GoodsPageForm param);
    
    void cancelUp(@Param("id") Integer id);

}
